package de.hdu.pms.model;

import java.sql.Time;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * @author BBV
 * 
 *         model class Projektzeit
 */

@Entity
@Table(name = "projektzeit")
public class Projektzeit {

	/**
	 * primary key:
	 * <ul>
	 * <li>projektzeit_id in the database</li>
	 * <li>automatic generated value</li>
	 * </ul>
	 */
	@Id
	@GeneratedValue
	@Column(name = "projektzeit_id")
	private Integer id;

	private Time projekt_von;
	private Time projekt_bis;

	/**
	 * <b>connection to the table Projekt:</b>
	 * <ul>
	 * <li>Projekt 1:n Projektzeiten</li>
	 * <li>one Projekt has no, one ore more Projektzeiten</li>
	 * <li>one Projektzeiten has one Projekt</li>
	 * <li>projekt_id is foreign key and referential integrity is on</li>
	 * </ul>
	 */
	@ManyToOne
	@JoinColumn(name = "projekt_id", nullable = false)
	private Projekte projekte;

	/**
	 * <b>connection to the table Arbeitstag:</b>
	 * <ul>
	 * <li>Arbeitstag 1:n Projektzeiten</li>
	 * <li>one Arbeitstag has no, one ore more Projektzeiten</li>
	 * <li>one Projektzeit has one Arbeitstage</li>
	 * <li>atag_id is foreign key and referential integrity is on</li>
	 * </ul>
	 */
	@ManyToOne
	@JoinColumn(name = "atag_id", nullable = false)
	private Arbeitstag arbeitstag;

	// Setter- und Getter-Methoden
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getProjekt_von() {
		return projekt_von;
	}

	public void setProjekt_von(Date projekt_von) {
		this.projekt_von = new Time(projekt_von.getTime());
	}

	public Date getProjekt_bis() {
		return projekt_bis;
	}

	public void setProjekt_bis(Date projekt_bis) {
		this.projekt_bis = new Time(projekt_bis.getTime());
	}

	public Projekte getProjekte() {
		return projekte;
	}

	public void setProjekte(Projekte projekte) {
		this.projekte = projekte;
	}

	public Arbeitstag getArbeitstag() {
		return arbeitstag;
	}

	public void setArbeitstag(Arbeitstag arbeitstag) {
		this.arbeitstag = arbeitstag;
	}

}
